home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Deutsche Edition 1
/
Deutsche Edition 1.iso
/
amok
/
011-020
/
amok19
/
patterns
/
lopattern.mod
< prev
next >
Wrap
Text File
|
1993-11-04
|
4KB
|
170 lines
(*---------------------------------------------------------------------------
:Program. LoPattern.mod
:Contents. Definiert und setzt Füllmuster für 1:1-Graphik
:Contents (Lores-normal oder Hires-interlace)
:Author. Bernd Preusing
:Address. Gerhardstr. 16 D-2200 Elmshorn
:Phone. 04121/22486
:Copyright. Public Domain
:Language. Modula-2
:Translator. M2Amiga V3.2e
:History. V1.0 1-May-89 Preusing
:Bugs. none
---------------------------------------------------------------------------*)
IMPLEMENTATION MODULE LoPattern;
FROM SYSTEM IMPORT ADR, ADDRESS, INLINE;
FROM Graphics IMPORT RastPortPtr;
(* from .def:
TYPE
Pattern =
(full, wideLD, narrowLD, wideRD, narrowRD, wideR, narrowR, wideD, narrowD,
wideCross, narrowCross, half, quart, eight, wideCheck, narrowCheck,
bigDot, smallDot, wave, crossWave, bricks);
*)
(* Pattern-Daten: *)
PROCEDURE WideRO;(* $E- *)
BEGIN INLINE(
00101H, 00202H, 00404H, 00808H, 01010H, 02020H, 04040H, 08080H)
END WideRO;
PROCEDURE NarrowRO;(* $E- *)
BEGIN INLINE(
01111H, 02222H, 04444H, 08888H)
END NarrowRO;
PROCEDURE WideLO;(* $E- *)
BEGIN INLINE(
08080H, 04040H, 02020H, 01010H, 00808H, 00404H, 00202H, 00101H)
END WideLO;
PROCEDURE NarrowLO;(* $E- *)
BEGIN INLINE(
08888H, 04444H, 02222H, 01111H)
END NarrowLO;
PROCEDURE Waager1;(* $E- *)
BEGIN INLINE(
0FFFFH, 00000H, 00000H, 00000H)
END Waager1;
PROCEDURE Waager2;(* $E- *)
BEGIN INLINE(
0FFFFH, 00000H)
END Waager2;
PROCEDURE Senkr1;(* $E- *)
BEGIN INLINE(
08888H)
END Senkr1;
PROCEDURE Senkr2;(* $E- *)
BEGIN INLINE(
0AAAAH)
END Senkr2;
PROCEDURE LargeCross;(* $E- *)
BEGIN INLINE(
04141H, 02222H, 01414H, 00808H, 01414H, 02222H, 04141H, 08080H)
END LargeCross;
PROCEDURE SmallCross;(* $E- *)
BEGIN INLINE(
05555H, 02222H, 05555H, 08888H)
END SmallCross;
PROCEDURE Half;(* $E- *)
BEGIN INLINE(
0AAAAH, 05555H)
END Half;
PROCEDURE Quart;(* $E- *)
BEGIN INLINE(
08888H, 02222H, 04444H, 01111H)
END Quart;
PROCEDURE Eight;(* $E- *)
BEGIN INLINE(
08080H, 00808H, 02020H, 00202H, 01010H, 00101H, 04040H, 00404H)
END Eight;
PROCEDURE Check;(* $E- *)
BEGIN INLINE(
0F0F0H, 0F0F0H, 0F0F0H, 0F0F0H, 00F0FH, 00F0FH, 00F0FH, 00F0FH)
END Check;
PROCEDURE MidCheck;(* $E- *)
BEGIN INLINE(
0CCCCH, 0CCCCH, 03333H, 03333H)
END MidCheck;
PROCEDURE DDot;(* $E- *)
BEGIN INLINE(
00606H, 00F0FH, 00F0FH, 00606H, 06060H, 0F0F0H, 0F0F0H, 06060H)
END DDot;
PROCEDURE SmallDot;(* $E- *)
BEGIN INLINE(
00000H, 02020H, 07070H, 02020H, 00000H, 00202H, 00707H, 00202H)
END SmallDot;
PROCEDURE Wave;(* $E- *)
BEGIN INLINE(
06060H, 09090H, 00909H, 00606H)
END Wave;
PROCEDURE DWave;(* $E- *)
BEGIN INLINE(
00808H, 06868H, 09090H, 02929H, 04646H, 04040H, 02020H, 01010H)
END DWave;
PROCEDURE Bricks;(* $E- *)
BEGIN INLINE(
0FEFEH, 0FEFEH, 0FEFEH, 00000H, 0DFDFH, 0DFDFH, 0DFDFH, 00000H)
END Bricks;
PROCEDURE Heights;(* $E- *)
BEGIN INLINE(
0,3,2,3,2,2,1,0,0,3,2,1,2,3,3,2,3,3,2,3,3)
END Heights;
VAR Patterns: ARRAY Pattern OF ADDRESS;
HighPtr : POINTER TO ARRAY Pattern OF INTEGER;
PROCEDURE SetPattern(rp: RastPortPtr; nr:Pattern);
BEGIN
WITH rp^ DO
areaPtrn:=Patterns[nr];
areaPtSz:=HighPtr^[nr];
END;
END SetPattern;
BEGIN
HighPtr:=ADR(Heights);
Patterns[full] := NIL;
Patterns[wideLD] :=ADR(WideRO);
Patterns[narrowLD] :=ADR(NarrowRO);
Patterns[wideRD] :=ADR(WideLO);
Patterns[narrowRD] :=ADR(NarrowLO);
Patterns[wideR] :=ADR(Waager1);
Patterns[narrowR] :=ADR(Waager2);
Patterns[wideD] :=ADR(Senkr1);
Patterns[narrowD] :=ADR(Senkr2);
Patterns[wideCross] :=ADR(LargeCross);
Patterns[narrowCross] :=ADR(SmallCross);
Patterns[half] :=ADR(Half);
Patterns[quart] :=ADR(Quart);
Patterns[eight] :=ADR(Eight);
Patterns[wideCheck] :=ADR(Check);
Patterns[narrowCheck] :=ADR(MidCheck);
Patterns[bigDot] :=ADR(DDot);
Patterns[smallDot] :=ADR(SmallDot);
Patterns[wave] :=ADR(Wave);
Patterns[crossWave] :=ADR(DWave);
Patterns[bricks] :=ADR(Bricks);
END LoPattern.mod